/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package interfaces;

import exceptions.SintaticoException;
import exceptions.SemanticoException;

/**
 *
 * @author Jailton
 */
public interface GrammarSymbols {
    
    // Simbolos não-terminais
    public void programa() throws SintaticoException, SemanticoException;

    public void declaracoesVariaveis() throws SintaticoException, SemanticoException;

    public void listaDeclaracoesVariaveis() throws SintaticoException, SemanticoException;

    public void listaDeIdentificadores() throws SintaticoException, SemanticoException;
    
    public void listaDeIdentificadores2() throws SintaticoException, SemanticoException;
    
    public void tipo() throws SintaticoException, SemanticoException;

    public void declaracoesDeSubprogramas() throws SintaticoException, SemanticoException;

    public void declaracaoDeSubprograma() throws SintaticoException, SemanticoException;

    public void argumentos() throws SintaticoException, SemanticoException;

    public void listaDeParametros() throws SintaticoException, SemanticoException;
    
    public void listaDeParametros2() throws SintaticoException, SemanticoException;

    public void comandoComposto() throws SintaticoException, SemanticoException;

    public void comandosOpcionais() throws SintaticoException, SemanticoException;

    public void listaDeComandos() throws SintaticoException, SemanticoException;
    
    public void listaDeComandos2() throws SintaticoException, SemanticoException;

    public void comando() throws SintaticoException, SemanticoException;

    public void parteElse() throws SintaticoException, SemanticoException;
    
    public void variavel() throws SintaticoException, SemanticoException;

    public void ativacaoDeProcedimento() throws SintaticoException, SemanticoException;

    public void listaDeExpressoes() throws SintaticoException, SemanticoException;

    public void expressao() throws SintaticoException, SemanticoException;

    public void expressaoSimples() throws SintaticoException, SemanticoException;
    
    public void expressaoSimples2() throws SintaticoException, SemanticoException;

    public void termo() throws SintaticoException, SemanticoException;

    public void fator() throws SintaticoException, SemanticoException;
    
    public void sinal() throws SintaticoException, SemanticoException;
    
    public void op_relacional() throws SintaticoException, SemanticoException;
    
    public void op_aditivo() throws SintaticoException, SemanticoException;
    
    public void op_multiplicativo() throws SintaticoException, SemanticoException;

    // Trata simbolos terminais
    public void consume(int tokenCode) throws SintaticoException, SemanticoException;

}
